Cognitoでユーザーのパスワードリセット時の通知方法の優先順位が設定できるようになりました!
Cognitoで地味だけどちょっと便利なアップデートがあったので紹介します。
ユーザーのパスワードリセット時の優先順付けが設定できるようになりました。
要するに、パスワードリセット時の通知方法をEメールと電話番号のSMSメッセージのどちらを優先的に利用するか選択できるというアップデートです。
やってみた
まずはCognitoユーザープールとCognitoユーザープールを利用してログインできる環境を構築します。
構築が簡単なので弊社ブログを参考に、ALBを利用してCognitoユーザープールのユーザーIDでログインできる環境を作ります。
そうやって構築したALBにアクセスすると、ログイン画面が表示されます。今回の肝はこれ(Forgot your password?)です。
このユーザーへのパスワードリセットコードの通知先を、Eメールと電話番号のSMSメッセージどちらを優先的に利用するか選択できるようになりました。
ユーザーの作成
Cognitoユーザープールで、Eメールでも電話番号のSMSメッセージでもどちらでも通知できるように、両方登録したユーザーを作成します。 電話番号を登録する場合は、先頭の0を省いて日本の国番号(+81)をつけて登録してください。 今回は検証の手間を省くため、電話番号とEメールを検証済みにしてしまいます。
アカウントのステータスが「Force Change Password」状態だとパスワードのリセットができないので、1回ログインしてパスワードを変更します。
参考: ユーザーアカウントのサインアップと確認 - Amazon Cognito
パスワードを変更すると、ステータスが「Confirmed」に変わっていることがわかります。このステータスになればパスワードリセットができます。
パスワードリセットの通知先を設定
ユーザーのパスワードリセット時の優先順付けは、Cognitoユーザープールのこの画面で設定できます。 まずは推奨の「 (推奨) 使用可能な場合は E メール、それ以外の場合は電話。ただし、MFA にも使用している場合、電話でパスワードをリセットすることは許可しません 」を試してみます。
パスワードリセットしてみる(Eメール通知)
ログイン画面からForgot your password?のリンクをクリックして、ユーザーネームを入力してReset my passwordします。
そうすると、こういった画面が表示されてパスワードのリセットができます。
パスワードリセットコードは、設定したとおりEメールに飛んできます。
パスワードリセットの通知先を変更
次に電話番号でのパスワードリセットを試してみます。「使用可能な場合は電話、それ以外の場合は E メール。ただし、MFA にも使用している場合は、電話でパスワードをリセットすることは許可しません」を設定します。
パスワードリセットしてみる(電話番号のSMS)
同様にログイン画面からForgot your password?のリンクをクリックして、ユーザーネームを入力してReset my passwordします。
そうすると、こういった画面が表示されてパスワードのリセットができます。 SMSでパスワードのリセットコード送ったよ。と、いった風に文面が変わっていることがわかります。
パスワードリセットコードは、設定したとおり電話番号にSMSで飛んできます。
パスワードリセットをさせない
ユーザーによるパスワードリセットを無効にすることもできます。「なし – ユーザーは管理者に連絡してパスワードをリセットする必要があります」を設定することで、パスワードリセットを無効にできます。 ただし、ユーザーによるパスワードリセットができなくなるため、ユーザーがパスワードを忘れてしまった場合、管理者がパスワードリセットしなければならないので運用の手間が増えます。それを考慮する必要があります。
パスワードリセットしようとしてみる(できない)
同様にログイン画面からForgot your password?のリンクをクリックして、ユーザーネームを入力してReset my passwordします。
そうすると、こういった画面が表示されてパスワードのリセットはできません。 サポートへ連絡してくださいみたいなエラーが表示されます。
終わりに
Cognitoの地味だけどちょっと便利なアップデートのご紹介でした。
ユーザーID管理は地味だけどとてもめんどくさいので、マネージドサービスを活用できると本来やりたかった領域に集中できるようになって良いと思います。